<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        .box1{
            width: 800px;
            height: 800px;
            background-color: #bfa;
            /* 开启BFC，防止上边距折叠 */
            overflow: hidden;
        }
        .box1 div{
            

            width: 100px;
            height: 100px;
         
            margin-bottom: 100px;
            /* 出现了高度塌陷 */

       
        }
        .box2{

            margin-left: 50px;
            background-color: gray;
            
            /* 设置box2的动画 */
            /* animation-name:要对当前元素生效的关键帧的名字 */
            animation-name: test;

            /* animation-duration :动画的执行时间*/
            animation-duration: 3s;
            /* 延迟 */
            animation-delay: 2s;
            /* 过渡效果 */
            animation-timing-function: ease-in-out;
            /* animation-iteration-count 动画执行的次数 */
            /* animation-iteration-count:infinite ; */
            /* 
                direction
                    指定动画运行的方向
                        默认值 
                        normal  从from向to运行 每次都是这样、
                        reverse 从to向from运行 每次都是这样
                        alternate 从from到to运行 重复执行动画时反复执行
                        alternate-reverse 从 to到from 重复执行动画时反向运行
            */
            animation-direction: alternate;
            /*
             animation-play-state:paused
                可选值：
                    running 默认值 动画执行
                    paused 动画暂停
            
            */
      

            /* animation-fill-mode:动画的填充模式 
                可选值：
                    none 默认值 动画执行完毕元素回到原来位置
                    forwards 动画执行结束完毕元素会停止在结束位置
                    backwards 动画延时等待时，元素就会处于开始位置
                    both 具备上面两者
            
            */
            /* animation-fill-mode:both; */

            /* 简写属性 */
            animation: test 2s 2 1s both;
        }

    
        /* 
            动画
                动画和过渡类似，都是可以实现一些动态的效果
                    不同的是过渡需要在某个属性发生变化时才会触发
                    动画可以自动触发动态效果

                设置动画效果，必须先要设置一个关键帧，关键帧设置了动画执行每一个步骤
        
        */
        .box1:hover div{
            animation-name: test;
            animation-play-state: running;
        }
        @keyframes test {
            /* to表示动画开始位置 */
            from{
                margin-left: 0;
                background-color: orange;
                animation-play-state: paused;
            }

            /* from表示动画的结束位置 */
            to{
                margin-left: 700px;
                background-color: plum;
                /* animation-play-state: paused; */
                
            }
        }

    </style>
</head>
<body>
    <div class="box1">
        <div class="box2"></div>
       
        </div>
</body>
</html>